package br.edu.flf.teoriagrafos.visao.painel;


import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JPanel;

import br.edu.flf.teoriagrafos.controle.geral.vos.grafo.Grafo;
import br.edu.flf.teoriagrafos.visao.controle.ControleVisao;
import br.edu.flf.teoriagrafos.visao.janela.Moldura;
import br.edu.flf.teoriagrafos.visao.vo.grafo.No;
import br.edu.flf.teoriagrafos.visao.vo.shape.Circulo;

/**
 * @author Rafael Santiago
 * Date: 03/05/2011 - Hora: 22:04:08
 */
public class GrafoPainel extends JPanel {

	private static final long serialVersionUID = 1625435702436618296L;

	@Override
	protected void paintComponent(Graphics g) {

		Graphics2D g2d = (Graphics2D) g;

		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
				RenderingHints.VALUE_RENDER_QUALITY);

		int i = 0;
		synchronized (Moldura.estados) {
			for (No no : Moldura.estados) {
				Circulo circulo = new Circulo(50, no.getPoint());
				ControleVisao.desenharNo(circulo, g2d, no.foiVisitado());
				ControleVisao.desenhaLabel("q" + i, g2d, circulo.getPontoCentral(),
						Color.RED);
				i++;
				
			}
		}

		/*
		 * if(this.grafoVO == null){ return; }else{
		 * controleVisao.desenhaGrafo(this, this.grafoVO); }
		 */

		// Circulo circulo = new Circulo(50, pontoOrigem);

		/*
		 * this.desenhaSeta(circulo.getPontoCentral(), pontoDestino, g2d,
		 * Color.RED); this.desenharNo(circulo, g2d, Color.lightGray);
		 * this.desenhaLabel("q0", g2d, circulo.getPontoCentral(), Color.RED);
		 */

		// scirculo.setCoordenadas(100, 100);

		// controleVisao.desenharNo(circulo, g2d, Color.orange);
		// this.desenhaLabel("q1", g2d, circulo.getPontoCentral(), Color.RED);

	}

	/*
	 * public GrafoVO getGrafoVO() { return grafoVO; }
	 * 
	 * public void setGrafoVO(GrafoVO grafoVO) { this.grafoVO = grafoVO; }
	 */

}